package com.yinhe.music.yhmusic.manager;

import com.yinhe.music.yhmusic.base.IBaseView;
import com.yinhe.music.yhmusic.model.Music;
import com.yinhe.music.yhmusic.service.PlayService;

import java.util.List;

/**
 * 契约类
 *
 * @author 何晓华
 */
public interface IMusicManagerContract {
    interface IMusicManagerPresenter {

        /**
         * 获取歌单列表
         */
        void reqDownMusic(List<Music> idList, String quality, PlayService mService);

        /**
         * 获取要下载的歌曲集合
         *
         * @param musicList 歌曲集合
         */
        void getBatchDownId(List<Music> musicList);

        /**
         * 获取删除的歌曲集合
         *
         * @param musicList 歌曲集合
         */
        void getDeleteList(List<Music> musicList);

        /**
         * 删除歌曲
         *
         * @param deleteList  删除列表
         * @param hasDownList 本地歌曲列表
         * @param songMenuId  歌单id
         * @param mType       列表来源
         * @param deleteFile  是否删除本地文件
         */
        void deleteMusic(List<Integer> deleteList, List<Integer> hasDownList, int songMenuId, int mType, boolean deleteFile);

        /**
         * 删除歌单歌曲
         *
         * @param songIdList 歌曲id集合
         * @param songMenuId 歌单id
         */
        void reqDeleteMenuMusic(List<Integer> songIdList, int songMenuId);
    }

    interface IMusicManagerView extends IBaseView {

        /**
         * 显示下载提示
         *
         * @param downList 下载歌曲列表
         */
        void showDownTips(List<Music> downList);

        /**
         * 显示删除提示
         *
         * @param deleteIdList 删除歌曲id列表
         */
        void showDeleteDialog(List<Integer> deleteIdList);
    }

}
